const strategies = {
  // #region 策略：S1 热冷号融合策略
  /*
  策略：S1
  总预测期数: 1875
  命中次数: 1195
  ✅ 准确率: 63.73%
  ❌ 最大连续错误: 5

  ❌ 各类连续不中次数出现频率：
  连续错误次数    出现次数
  1 次            292 次
  2 次            87 次
  3 次            44 次
  4 次            13 次
  5 次            6 次



  ✅ 最佳准确率窗口:
  { windowSize: 21, accuracy: 67.84, maxWrongStreak: 8 }

  ❌ 最小连续错误窗口:
  { windowSize: 60, accuracy: 63.73, maxWrongStreak: 5 }
  */
  // #endregion
  S1: require("./v3/select32NumbersByS1.js"),

  // #region 策略：S2 连错淘汰优先 + 热冷融合
  /*
  $ node single

  策略：S2
  总预测期数: 1875
  命中次数: 1216
  ✅ 准确率: 64.85%
  ❌ 最大连续错误: 7

  ❌ 各类连续不中次数出现频率：
  连续错误次数    出现次数
  1 次            281 次
  2 次            93 次
  3 次            34 次
  4 次            10 次
  5 次            6 次
  6 次            1 次
  7 次            2 次

  ✅ 最佳准确率窗口:
  { windowSize: 177, accuracy: 67.31, maxWrongStreak: 6 }

  ❌ 最小连续错误窗口:
  { windowSize: 114, accuracy: 62.67, maxWrongStreak: 5 }
  */
  S2: require("./v3/select32NumbersByS2.js"),
  // #endregion

  // #region 策略：S3 终极容错模型 => 多窗口融合 + 分数惩罚 + 强化过滤机制
  /*
  策略：S3
  总预测期数: 1875
  命中次数: 1234
  ✅ 准确率: 65.81%
  ❌ 最大连续错误: 5

  ❌ 各类连续不中次数出现频率：
  连续错误次数    出现次数
  1 次            300 次
  2 次            101 次
  3 次            24 次
  4 次            13 次
  5 次            3 次

  ✅ 最佳准确率窗口:
  { windowSize: 33, accuracy: 65.81, maxWrongStreak: 5 }

  ❌ 最小连续错误窗口:
  { windowSize: 8, accuracy: 62.61, maxWrongStreak: 5 }
  */
  // #endregion
  S3: require("./v3/select32NumbersByS3.js"),

  // #region 策略：S4 号码冷却惩罚再强化 => 策略淘汰 + 号码连错冷却机制
  /*
  策略：S4
  总预测期数: 1875
  命中次数: 1234
  ✅ 准确率: 65.81%
  ❌ 最大连续错误: 5

  ❌ 各类连续不中次数出现频率：
  连续错误次数    出现次数
  1 次            300 次
  2 次            101 次
  3 次            24 次
  4 次            13 次
  5 次            3 次

  ✅ 最佳准确率窗口:
  { windowSize: 33, accuracy: 65.81, maxWrongStreak: 5 }

  ❌ 最小连续错误窗口:
  { windowSize: 8, accuracy: 62.61, maxWrongStreak: 5 }
  */
  // #endregion
  S4: require("./v3/select32NumbersByS4.js"),

  // #region 策略：S5 => S4.1 精调版: 冷却惩罚升级为“线性扣分”; 加入“近期热度奖励”;  最终评分;
  /*
  策略：S5
  总预测期数: 1875
  命中次数: 1268
  ✅ 准确率: 67.63%
  ❌ 最大连续错误: 5

  ❌ 各类连续不中次数出现频率：
  连续错误次数    出现次数
  1 次            286 次
  2 次            88 次
  3 次            27 次
  4 次            11 次
  5 次            4 次


  ✅ 最佳准确率窗口:
  { windowSize: 39, accuracy: 67.63, maxWrongStreak: 5 }

  ❌ 最小连续错误窗口:
  { windowSize: 27, accuracy: 65.44, maxWrongStreak: 5 }
  */
  // #endregion
  S5: require("./v3/select32NumbersByS5.js"),
  S6: require("./v3/select32NumbersByS6.js"),
  // S7: require("./v3/select32NumbersByS7.js"),
  // S8: require("./v3/select32NumbersByS8.js"),
  // S9: require("./v3/select32NumbersByS9.js"),
  // S10: require("./v3/select32NumbersByS10.js"),
};

module.exports = {
  getAllStrategyNames: () => Object.keys(strategies),
  getStrategyByName: (name) => strategies[name],
};
